/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.rest;

import edu.ucue.ptc.gco.mdl.ObjetivoEmpleado;
import edu.ucue.ptc.gco.ngc.ObjetivoEmpleadoManajerLocal;
import edu.ucue.ptc.gco.ngc.UsuarioManager;
import edu.ucue.ptc.gco.ngc.UsuarioManagerLocal;
import edu.ucue.ptc.gco.util.AtributoInvalidoException;
import edu.ucue.ptc.gco.util.ObjetivoEmpleadoValidatorException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;

/**
 * REST Web Service
 *
 * @author Valex
 */
@Path("objetivoEmpleado/{idEmpleado}/{nombre}/{clave}/{callback}")
@RequestScoped
public class ObjetivoEmpleadoResource {

    @Context
    private UriInfo context;

    @Inject
    private ObjetivoEmpleadoManajerLocal ObjetivoEmpleadoManager;
    
     @Inject
    private UsuarioManagerLocal UsuarioManager;
    
    /**
     * Creates a new instance of ObjetivoEmpleadoResource
     */
    public ObjetivoEmpleadoResource() {
    }

    /**
     * Retrieves representation of an instance of edu.ucue.ptc.rest.ObjetivoEmpleadoResource
     * @return an instance of java.lang.String
     */
    @GET
    @Produces("application/json")
    @Named
    public String getJson(@PathParam("callback") String callback, @PathParam("idEmpleado") int idEmpleado, @PathParam("nombre") String user,
            @PathParam("clave") String pass) throws AtributoInvalidoException, ObjetivoEmpleadoValidatorException {
        //TODO return proper representation object
       
        int IdPersona = UsuarioManager.verificarUsuario(user, pass);
        //String a=",\"valor\":\""+verificarUsuario;

        if (IdPersona != -1) {
            
                ObjetivoEmpleado obj=ObjetivoEmpleadoManager.verificarObjetivoEmpleado(idEmpleado, user, pass);

                if (obj == null) {
                    return callback + "({\"callback\":\"" + callback + "\",\"errormsg\":\"" + "No tiene direcciones" + "\"})";
                } else {
                    
        
                return callback + "({\"callback\":\"" + callback + "\",\"objetivo\":{\"montoActual\":\"" + obj.getMontoActual() + "\",\"montoObjetivo\":\"" + obj.getMonto() + "\",\"estado\":\"" + obj.getEstado() + "\",\"fechaInicial\":\"" + obj.getFechaInicio() + "\",\"fechaFinal\":\"" + obj.getFechaFinal() +"\"}})" ;
        
                }
           
        }
        //buscarEmpleadoPorId
        return "({\"callback\":\"" + callback + "\",\"errormsg\":\"" + "Usuario no registrado" + "\"})";
        
    }

    /**
     * PUT method for updating or creating an instance of ObjetivoEmpleadoResource
     * @param content representation for the resource
     * @return an HTTP response with content of the updated or created resource.
     */
    @PUT
    @Consumes("application/json")
    public void putJson(String content) {
    }
}
